home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Updaters / WhiteCap 3.0.4 / WhiteCap Source.sit / WhiteCap Source / Common / General Tools / RectUtils.cpp < prev    next >
C/C++ Source or Header  |  1999-07-28  |  2KB  |  94 lines

  1. #include "RectUtils.h"
  2.  
  3.  
  4. #if EG_WIN
  5.  
  6. void SetRect( Rect* inR, long left, long top, long right, long bot ) {
  7.  
  8.     inR -> top        = top;
  9.     inR -> left        = left;
  10.     inR -> bottom    = bot;
  11.     inR -> right    = right;
  12. }
  13.  
  14.  
  15. void InsetRect( Rect* inR, int inDelX, int inDelY ) {
  16.  
  17.     inR -> left        += inDelX;
  18.     inR -> right    -= inDelX;
  19.     inR -> bottom    -= inDelY;
  20.     inR -> top        += inDelY;
  21. }
  22.  
  23.  
  24.  
  25. void OffsetRect( Rect* inR, int inDelX, int inDelY ) {
  26.  
  27.     inR -> left        += inDelX;
  28.     inR -> right    += inDelX;
  29.     inR -> bottom    += inDelY;
  30.     inR -> top        += inDelY;
  31. }
  32.  
  33.  
  34.  
  35. void UnionRect( const Rect* inR1, const Rect* inR2, Rect* outRect ) {
  36.     long l, t, b;
  37.  
  38.     l                    = ( inR1 -> left < inR2 -> left ) ? inR1 -> left : inR2 -> left;
  39.     t                    = ( inR1 -> top < inR2 -> top ) ? inR1 -> top : inR2 -> top;
  40.     b                    = ( inR1 -> bottom < inR2 -> bottom ) ? inR2 -> bottom : inR1 -> bottom;
  41.     outRect -> right    = ( inR1 -> right < inR2 -> right ) ? inR2 -> right : inR1 -> right;
  42.  
  43.     outRect -> left        = l;
  44.     outRect -> top        = t;
  45.     outRect -> bottom    = b;
  46. }
  47.  
  48.  
  49.  
  50.  
  51. void SectRect( const Rect* inR1, const Rect* inR2, Rect* outRect ) {
  52.     long l, t, b;
  53.  
  54.     l                    = ( inR1 -> left > inR2 -> left ) ? inR1 -> left : inR2 -> left;
  55.     t                    = ( inR1 -> top > inR2 -> top ) ? inR1 -> top : inR2 -> top;
  56.     b                    = ( inR1 -> bottom > inR2 -> bottom ) ? inR2 -> bottom : inR1 -> bottom;
  57.     outRect -> right    = ( inR1 -> right > inR2 -> right ) ? inR2 -> right : inR1 -> right;
  58.     
  59.     outRect -> left        = l;
  60.     outRect -> top        = t;
  61.     outRect -> bottom    = b;
  62. }
  63.  
  64.  
  65. short PtInRect( const Point& inPt, const Rect* inRect ) {
  66.     if ( inPt.h > inRect -> left && inPt.h <= inRect -> right ) {
  67.         if ( inPt.v > inRect -> top && inPt.v <= inRect -> bottom )
  68.             return true;
  69.     }
  70.     
  71.     return false;
  72. }
  73.  
  74. #endif
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. void UnionPt( long x, long y, Rect* ioRect ) {
  82.  
  83.     if ( ioRect -> left > x )
  84.         ioRect -> left = x;
  85.     if ( ioRect -> right < x )
  86.         ioRect -> right = x;
  87.         
  88.     if ( ioRect -> top > y )
  89.         ioRect -> top = y;
  90.     if ( ioRect -> bottom < y )
  91.         ioRect -> bottom = y;
  92. }
  93.  
  94.